#ifndef N1TRACE_H_2009_11_30
#define N1TRACE_H_2009_11_30

#ifdef N1TRACE

/************************************************************************
  N1Trace can:
  1) Simple log traces to log file.
  2) Fast store traces in memory to log when it needed.
  3) Measure time spended in block.
  4) Something else?
************************************************************************/


#define N1Trace(function) 

#include "N0Lib.h"

class N1TraceClass 
{
public:
    N1TraceClass(pcstr traceString);
    ~N1TraceClass();

    static void startTrace();

    static void setMaxTraceLevel(uint32 max);
    static uint32 getMaxTraceLevel();

private:
    N1TraceClass(const N1TraceClass& a);
    const N1TraceClass& operator=(const N1TraceClass& a);

    class N1TraceLog;

    N1TraceLog *m_traceLog;
};

#else

#define N1Trace(function) 

#endif


#endif //N1TRACE_H_2009_11_30
